package com.eventosgasteiz.beans;

import java.io.Serializable;
import java.util.Date;

import android.location.Address;

/**
 * 
 * @author Curso Android
 *
 */
public class Evento implements Serializable {

	private static final long serialVersionUID = 788107959781048609L;

	private Long id;
	private String name;
	private String desc;
	private String lugar;
	private Date fecha_inicio;
	private Date fecha_fin;
	private String horario;
	private double precio;
	private String organizador;
	private String telefono;
	private String url;
	private String photopath;
	private String thumbphotopath;
	private String location;
	private double latitude;
	private double longitude;

	public Evento() {
	}

	/**
	 * Constructor con los valores minimos
	 * @param id the id
	 * @param name the name
	 * @param lugar the lugar
	 * @param fini the fini
	 * @param ffin the ffin
	 * @param thumbphotopath the thumbphotopath
	 */
	public Evento(Long id, String name, String lugar, Date fini, Date ffin, String thumbphotopath) {
		this.setId(id);
		this.name = name;
		this.lugar = lugar;
		this.fecha_inicio = fini;
		this.fecha_fin = ffin;
		this.thumbphotopath = thumbphotopath;
	}

	/**
	 * Constructor con todos los valores del bean
	 * @param id
	 * @param name
	 * @param desc
	 * @param lugar
	 * @param fini
	 * @param ffin
	 * @param horario
	 * @param precio
	 * @param organizador
	 * @param telefono
	 * @param url
	 * @param photopath
	 * @param thumbphotopath
	 * @param location
	 * @param latitude
	 * @param longitude
	 */
	public Evento(Long id, String name, String desc, String lugar, Date fini, Date ffin, String horario,
			double precio, String organizador, String telefono, String url, String photopath, String thumbphotopath,
			String location, double latitude, double longitude) {
		this.setId(id);
		this.name = name;
		this.desc = desc;
		this.lugar = lugar;
		this.fecha_inicio = fini;
		this.fecha_fin = ffin;
		this.horario = horario;
		this.precio = precio;
		this.organizador = organizador;
		this.telefono = telefono;
		this.url = url;
		this.photopath = photopath;
		this.thumbphotopath = thumbphotopath;
		this.location = location;
		this.latitude = latitude;
		this.longitude = longitude;
	}
	
	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the desc
	 */
	public String getDesc() {
		return desc;
	}

	/**
	 * @param desc the desc to set
	 */
	public void setDesc(String desc) {
		this.desc = desc;
	}

	/**
	 * @return the lugar
	 */
	public String getLugar() {
		return lugar;
	}

	/**
	 * @param lugar the lugar to set
	 */
	public void setLugar(String lugar) {
		this.lugar = lugar;
	}

	/**
	 * @return the fecha_inicio
	 */
	public Date getFecha_inicio() {
		return fecha_inicio;
	}

	/**
	 * @param fecha_inicio the fecha_inicio to set
	 */
	public void setFecha_inicio(Date fecha_inicio) {
		this.fecha_inicio = fecha_inicio;
	}

	/**
	 * @return the fecha_fin
	 */
	public Date getFecha_fin() {
		return fecha_fin;
	}

	/**
	 * @param fecha_fin the fecha_fin to set
	 */
	public void setFecha_fin(Date fecha_fin) {
		this.fecha_fin = fecha_fin;
	}

	/**
	 * @return the horario
	 */
	public String getHorario() {
		return horario;
	}

	/**
	 * @param horario the horario to set
	 */
	public void setHorario(String horario) {
		this.horario = horario;
	}

	/**
	 * @return the precio
	 */
	public double getPrecio() {
		return precio;
	}

	/**
	 * @param precio the precio to set
	 */
	public void setPrecio(double precio) {
		this.precio = precio;
	}

	/**
	 * @return the organizador
	 */
	public String getOrganizador() {
		return organizador;
	}

	/**
	 * @param organizador the organizador to set
	 */
	public void setOrganizador(String organizador) {
		this.organizador = organizador;
	}

	/**
	 * @return the telefono
	 */
	public String getTelefono() {
		return telefono;
	}

	/**
	 * @param telefono the telefono to set
	 */
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	/**
	 * @return the url
	 */
	public String getUrl() {
		return url;
	}

	/**
	 * @param url the url to set
	 */
	public void setUrl(String url) {
		this.url = url;
	}

	/**
	 * @return the photopath
	 */
	public String getPhotopath() {
		return photopath;
	}

	/**
	 * @param photopath the photopath to set
	 */
	public void setPhotopath(String photopath) {
		this.photopath = photopath;
	}

	/**
	 * @return the thumbphotopath
	 */
	public String getThumbphotopath() {
		return thumbphotopath;
	}

	/**
	 * @param thumbphotopath the thumbphotopath to set
	 */
	public void setThumbphotopath(String thumbphotopath) {
		this.thumbphotopath = thumbphotopath;
	}

	/**
	 * @return the location
	 */
	public String getLocation() {
		return location;
	}

	/**
	 * @param location the location to set
	 */
	public void setLocation(String location) {
		this.location = location;
	}

	/**
	 * @return the latitude
	 */
	public double getLatitude() {
		return latitude;
	}

	/**
	 * @param latitude the latitude to set
	 */
	public void setLatitude(double latitude) {
		this.latitude = latitude;
	}

	/**
	 * @return the longitude
	 */
	public double getLongitude() {
		return longitude;
	}

	/**
	 * @param longitude the longitude to set
	 */
	public void setLongitude(double longitude) {
		this.longitude = longitude;
	}

	/**
	 * 
	 * @param a Address the address to set
	 */
	public void setAddressLocation(Address a) {
		if (null == a) {
			location = null;
			latitude = longitude = 0;
		} else {
			int maxAddressLine = a.getMaxAddressLineIndex();
			StringBuffer sb = new StringBuffer("");
			for (int i=0; i<maxAddressLine; i++) {
				sb.append(a.getAddressLine(i) + " ");
			}
			location = sb.toString();
			latitude = a.getLatitude();
			longitude = a.getLongitude();
		}
	}

}
